home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1993 / Internet Info CD-ROM (Walnut Creek) (1993).iso / inet / internet-drafts / draft-estrin-sdrp-02.txt < prev    next >
Text File  |  1993-03-21  |  55KB  |  1,401 lines

  1.  
  2.  
  3.  
  4. Network Working Group                                 Deborah Estrin
  5. INTERNET DRAFT                                        Daniel Zappala
  6.                                                                  USC
  7.                                                              Tony Li
  8.                                                        cisco Systems
  9.                                                        Yakov Rekhter
  10.                               T.J. Watson Research Center, IBM Corp.
  11.                                                               3/9/93
  12.                                                        Revision 0.98
  13.                                             Expiration Date: 9/31/93
  14.  
  15.  
  16.                          Source Demand Routing:
  17.          Packet Format and Forwarding Specification (Version 1).
  18.  
  19.  
  20.  
  21. Status of this Memo
  22.  
  23.    This document defines a policy routing protocol for the Internet.
  24.    This document specifies an IAB standards track protocol for the
  25.    Internet community, and requests discussion and suggestions for
  26.    improvements.  Please refer to the current edition of the "IAB
  27.    Official Protocol Standards" for the standardization state and status
  28.    of this protocol.  Distribution of this document is unlimited.
  29.  
  30.    This document is an Internet Draft. Internet Drafts are working
  31.    documents of the Internet Engineering Task Force (IETF), its Areas,
  32.    and its Working Groups. Note that other groups may also distribute
  33.    working documents as Internet Drafts.
  34.  
  35.    Internet Drafts are draft documents valid for a maximum of six
  36.    months.  Internet Drafts may be updated, replaced, or obsoleted by
  37.    other documents at any time. It is not appropriate to use Internet
  38.    Drafts as reference material or to cite them other than as a "working
  39.    draft" or "work in progress".
  40.  
  41.  
  42. 1  Overview
  43.  
  44.  
  45.    The purpose of SDRP is to support source-initiated selection of
  46.    routes to complement the route selection provided by existing routing
  47.    protocols for both inter-domain and intra-domain routes. This
  48.    document refers to such source-initiated routes as "SDRP routes".
  49.    This document describes the packet format and forwarding procedure
  50.    for SDRP.  It also describes procedures for ascertaining feasibility
  51.    of SDRP routes.  Other components not described here are routing
  52.  
  53.  
  54.  
  55. Expiration Date Sept. 31 1993                                   [Page 1]
  56.  
  57. INTERNET DRAFT                                                March 1993
  58.  
  59.  
  60.    information distribution and route computation.  This portion of the
  61.    protocol may initially be used with manually configured routes. The
  62.    same packet format and processing will be usable with dynamic route
  63.    information distribution and computation methods under development.
  64.  
  65.    The packet forwarding protocol specified here makes minimal
  66.    assumptions about the distribution and acquisition of routing
  67.    information needed to construct the SDRP routes.  These minimal
  68.    assumptions are believed to be sufficient for the existing Internet.
  69.    Future components of the SDRP protocol will extend capabilities in
  70.    this area and others in a largely backward-compatible manner.
  71.  
  72.    This version of the packet forwarding protocol sends all packets with
  73.    the complete SDRP route in the SDRP header. Future versions will
  74.    address route setup and other enhancements and optimizations.
  75.  
  76.  
  77. 2  Model of operations
  78.  
  79.  
  80.    An Internet can be viewed as a collection of routing domains
  81.    interconnected by means of common Layer 2 (Data Link Layer)
  82.    subnetworks, and Border Routers (BRs) attached to these subnetworks.
  83.    Within a routing domain, there exist endstations, further
  84.    subnetworks, and routers interconnecting subnetworks.  This document
  85.    assumes that there is some type of routing present within the routing
  86.    domain, but it does not assume that this intra-domain routing is
  87.    coordinated or even consistent.
  88.  
  89.    For the purposes of this discussion, a BR belongs to only one domain.
  90.    A pair of BRs, each belonging to a different domain, but attached to
  91.    a common subnetwork, form an inter-domain connection. By definition,
  92.    packets that traverse multiple domains must traverse BRs of these
  93.    domains.  Note that a single physical router may act as multiple BRs
  94.    for the purposes of this model.
  95.  
  96.    A pair of domains is said to be adjacent if there is at least one
  97.    pair of BRs, one in each domain, that form an inter-domain
  98.    connection.
  99.  
  100.    Each domain has a globally unique identifier, called a Domain
  101.    Identifier (DI). All the BRs within a domain need to know the DI
  102.    assigned to the domain.  Management of the DI space is outside the
  103.    scope of this document.  This document assumes that Autonomous System
  104.    (AS) numbers are used as DIs.  A domain path (or simply path) refers
  105.    to a list of DIs such as might be taken from a BGP AS path [1, 2, 3]
  106.    or an IDRP RD path [4].  We refer to a route as the combination of a
  107.    network address and domain paths. The network addresses are
  108.  
  109.  
  110.  
  111. Expiration Date Sept. 31 1993                                   [Page 2]
  112.  
  113. INTERNET DRAFT                                                March 1993
  114.  
  115.  
  116.    represented by NLRI (Network Layer Reachability Information) as
  117.    described in [3].
  118.  
  119.    This document assumes that the routing domains are congruent to the
  120.    autonomous systems. Thus, within the content of this document, the
  121.    terms autonomous system and routing domain can be used
  122.    interchangeably.
  123.  
  124.    A component in an SDRP route is either a DI (AS number) or an IP
  125.    address.  Thus, an SDRP route is defined as a sequence of domains and
  126.    routers, syntactically expressed as a sequence of DIs and IP
  127.    addresses.
  128.  
  129.    SDRP supports both "strict" and "loose" source routes, and also
  130.    allows both "strict" and "loose" hops in a single source route.  A
  131.    strict SDRP next hop means that the next hop in the source route must
  132.    be adjacent to the previous entity.
  133.  
  134.    It is assumed that each BR participates in the intra-domain routing
  135.    protocol(s) (IGPs) of the domain to which the BR belongs. Thus, a BR
  136.    may forward a packet to any other BR in its own domain using intra-
  137.    domain routing procedures.  Forwarding a packet between two BRs that
  138.    form an inter-domain connection requires neither intra-domain nor the
  139.    inter-domain routing procedures (an inter-domain connection is a
  140.    common Layer 2 subnetwork).
  141.  
  142.    It is also assumed that all routers participate in the intra-domain
  143.    routing protocol(s) (IGPs) of the domain to which they belong.
  144.  
  145.    While SDRP does not require that all domains have a common network
  146.    layer protocol, all the BRs in the domains along a given SDRP route
  147.    are required to support a common network layer.  This document
  148.    specifies SDRP operations when that common network layer protocol is
  149.    IP ([5]).
  150.  
  151.    While this document requires all the BRs to support IP, the document
  152.    does not preclude a BR from additionally supporting other network
  153.    layer protocols as well (e.g., CLNP, IPX, AppleTalk).  If a BR
  154.    supports multiple network layers, then for the purposes of this
  155.    model, the BR must maintain multiple Forwarding Information Bases
  156.    (FIBs), one per network layer.
  157.  
  158.    Forwarding an IP packet along an SDRP route is accomplished by
  159.    encapsulating the packet in an SDRP packet.  An SDRP packet consists
  160.    of the SDRP header followed by the SDRP data.  The SDRP header
  161.    carries the SDRP route constructed by the domain that originated the
  162.    SDRP packet.  The SDRP data carries the original packet that the
  163.    source domain decided to forward via SDRP.
  164.  
  165.  
  166.  
  167. Expiration Date Sept. 31 1993                                   [Page 3]
  168.  
  169. INTERNET DRAFT                                                March 1993
  170.  
  171.  
  172.    An SDRP packet is carried across domains as the data portion of an IP
  173.    packet with protocol number 42.
  174.  
  175.    This document refers to the IP header of a packet that carries an
  176.    SDRP packet as the delivery IP header (or just the delivery header).
  177.    This document refers to the packet carried as SDRP data as the
  178.    payload packet, and the network layer header of the payload packet is
  179.    the payload header.
  180.  
  181.    Thus, an SDRP Packet can be represented as follows:
  182.  
  183.      +-------------------+--------------+-------------------
  184.      | Delivery header   |  SDRP header |  SDRP data
  185.      |    (IP header)    |              | (Payload packet)
  186.      +-------------------+--------------+--------------------
  187.  
  188.    Each SDRP route may have an MTU associated with it. An MTU of an SDRP
  189.    route is defined as the maximum length of the payload packet that can
  190.    be carried without fragmentation of an SDRP packet.  Procedures for
  191.    MTU discovery are specified in Section 9.
  192.  
  193.    It is assumed that a BR participates in either BGP or IDRP.  A BR
  194.    participating in SDRP augments its FIBs with a D-FIB that contains
  195.    routes to domains.  A route to a domain is a triplet <DI, Next-Hop,
  196.    NLRI>, where DI depicts a destination domain, Next-Hop depicts the
  197.    network layer address of the next-hop BR, and NLRI depicts the set of
  198.    reachable destinations within the destination domain.  D-FIBs are
  199.    constructed based on the information obtained from either BGP, IDRP,
  200.    or configuration information.
  201.  
  202.    An SDRP packet is forwarded across multiple domains by utilizing the
  203.    forwarding databases (both FIBs and D-FIBs) maintained by the BRs.
  204.  
  205.    The operational status of SDRP routes is monitored via passive (Error
  206.    Reporting) and active (Route Probing) mechanisms. The Error Reporting
  207.    mechanism provides the originator of the SDRP route with a failure
  208.    notification.  The Probing mechanism provides the originator of the
  209.    SDRP route with confirmation of a route's feasibility.
  210.  
  211.  
  212. 3  SDRP Packet format
  213.  
  214.  
  215.    The total length of an SDRP packet (header plus data) can be
  216.    determined from the information carried in the delivery IP header.
  217.    The length of the payload packet can be determined from the total
  218.    length of an SDRP packet and the length of its SDRP Header.
  219.  
  220.  
  221.  
  222.  
  223. Expiration Date Sept. 31 1993                                   [Page 4]
  224.  
  225. INTERNET DRAFT                                                March 1993
  226.  
  227.  
  228.    The following describes the format of an SDRP packet.
  229.  
  230.        0                   1                   2                   3
  231.        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  232.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  233.       | Ver |D|S|P|   |   Hop Count   |SourceProtoType|  Payload Type |
  234.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  235.       |                   Source Route Identifier                     |
  236.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  237.       |                         Target Router                         |
  238.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  239.       |                            Prefix                             |
  240.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  241.       |  PrefixLength |  Notification |SrcRouteLength |   NextHopPtr  |
  242.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  243.       |                Source Route ...
  244.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  245.       |                Payload ....
  246.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  247.  
  248.       Version and Flags  (1 octet)
  249.  
  250.       The SDRP version number and control flags are coded in the first
  251.       octet.  Bit 0 is the most significant bit, bit 7 is the least
  252.       significant bit.
  253.  
  254.          Version (bits 0 through 2)
  255.  
  256.             The first three bits  contain the Version field indicating
  257.             the version number of the protocol.  The value of this field
  258.             is set to 1.
  259.  
  260.          Flags (bits 3 through 7)
  261.  
  262.             Data packet/Control packet (bit 2)
  263.  
  264.                If the bit is set to 1, then the packet carries data.
  265.                Otherwise, the packet carries control information.
  266.  
  267.             Loose/Strict Source Route (bit 3)
  268.  
  269.                The Loose/Strict Source Route indicator is used when
  270.                making a forwarding decision (see Section 5.2).  If this
  271.                bit is set to 1, it indicates a Strict Source Route.  If
  272.                this bit is set to 0, it indicates a Loose Source Route.
  273.  
  274.             Probe Indicator (bit 4)
  275.  
  276.  
  277.  
  278.  
  279. Expiration Date Sept. 31 1993                                   [Page 5]
  280.  
  281. INTERNET DRAFT                                                March 1993
  282.  
  283.  
  284.                The Probe Indicator is used by the originator of the
  285.                route to request verification of the route's feasibility
  286.                (see Sections 4 and 7.1).  If this bit is set to 1, it
  287.                indicates that the originator is probing the route.  This
  288.                bit should always be set to 0 for control packets.
  289.  
  290.       Hop Count (1 octet)
  291.  
  292.          The Hop Count field carries the maximum number of routers an
  293.          SDRP data packet may traverse. It is decremented by 1 as an
  294.          SDRP data packet traverses a router which forwards the packet
  295.          using SDRP forwarding. Once the Hop Count field reaches the
  296.          value of 0, the router should discard the data packet and
  297.          generate a control packet (see Section 5.2.4).
  298.  
  299.       Source Route Protocol Type (1 octet)
  300.  
  301.          The Source Route Protocol Type fields indicates the type of
  302.          information that appears in the source route.  The value 1 in
  303.          this field indicates that the contents of the source route are
  304.          as described in this document.
  305.  
  306.       Payload Protocol Type (1 octet)
  307.  
  308.          The Payload Protocol Type field indicates the protocol type of
  309.          the payload.  If the payload is an IP datagram, then this field
  310.          should contain the value 1.
  311.  
  312.       Source Route Identifier (4 octets)
  313.  
  314.          The BR  that originates the SDRP packet should insert a 32 bit
  315.          value in this field which will serve as an identifier for the
  316.          source route.  This value needs to be  unique  only in the
  317.          context of the originating BR.
  318.  
  319.       Target Router (4 octets)
  320.  
  321.          This field is meaningful only in control packets.
  322.  
  323.          The Target Router contains one of the IP addresses of the
  324.          router that originated the SDRP packet that triggered the
  325.          control packet to be returned.
  326.  
  327.       Prefix (4 octets)
  328.  
  329.          The Prefix field contains an IP address prefix.  Only the
  330.          number of bits specified in the Prefix Length are significant.
  331.          The Prefix field is used to prevent routing loops when using
  332.  
  333.  
  334.  
  335. Expiration Date Sept. 31 1993                                   [Page 6]
  336.  
  337. INTERNET DRAFT                                                March 1993
  338.  
  339.  
  340.          BGP or IDRP to route to the next AS in a loose source route
  341.          (see Section 4).
  342.  
  343.       Prefix Length (1 octet)
  344.  
  345.          The Prefix Length field indicates the length in bits of the IP
  346.          address prefix.  A length of zero indicates a prefix that
  347.          matches all IP addresses.
  348.  
  349.             Notification Code (1 octet)
  350.  
  351.                This field is only meaningful in control packets.  In
  352.                data packets, this field is transmitted as zero, and
  353.                should be ignored on receipt.
  354.  
  355.                This document defines the following values for the
  356.                Notification Code:
  357.  
  358.                1 - No Route Available
  359.  
  360.                2 - Strict Source Route Failed
  361.  
  362.                3 - Transit Policy Violation
  363.  
  364.                4 - Hop Count Exceeded
  365.  
  366.                5 - Probe Completed
  367.  
  368.                6 - Unimplemented SDRP version
  369.  
  370.                7 - Unimplemented Source Route Protocol Type
  371.  
  372.       Source Route Length (1 octet)
  373.  
  374.          The Source Route Length field indicates the length in 32 bit
  375.          words of the domain level source route carried in the SDRP
  376.          Header.
  377.  
  378.       Next Hop Pointer (1 octet)
  379.  
  380.          The Next Hop Pointer field indicates the offset of the high-
  381.          order byte of the next hop along the route that the packet has
  382.          to be forwarded.  This offset is relative to the start of the
  383.          Source Route field; so if the value of the Next Hop Pointer
  384.          field equals the value of the Source Route Length field, then
  385.          the entire source route has been completely traversed.  All
  386.          other source routes are said to be incompletely traversed.
  387.  
  388.  
  389.  
  390.  
  391. Expiration Date Sept. 31 1993                                   [Page 7]
  392.  
  393. INTERNET DRAFT                                                March 1993
  394.  
  395.  
  396.       Source Route (variable)
  397.  
  398.          The components of the source route are syntatically IP
  399.          addresses.  An IP address from network 128.0.0.0 is used to
  400.          encode a next hop that is a domain.  The least signficant two
  401.          octets contain the DI, which is an Internet Autonomous System
  402.          number.  An IP address from the network 127.0.0.0 is used to
  403.          encode characteristics of the source route.  The least
  404.          significant three octets are used as a Source Route Change
  405.          field.
  406.  
  407.          Source Route Change (3 octets)
  408.  
  409.        0                   1                   2                   3
  410.        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  411.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  412.       |      127      |S|                                             |
  413.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  414.  
  415.             Loose/Strict Source Route Change (bit 8)
  416.  
  417.                The Loose/Strict Source Route Change bit reflects a new
  418.                value of the Loose/Strict Source Route bit in the SDRP
  419.                header.
  420.  
  421.             The rest of the Source Route Change field is transmitted as
  422.             zero, and should be ignored on receipt.
  423.  
  424.       Payload (variable)
  425.  
  426.          The Payload field carries the datagram originated by the end-
  427.          system within the domain that constructed the SDRP packet. The
  428.          Payload field forms the data portion of the SDRP packet.  In a
  429.          control packet this field may be empty or may carry the payload
  430.          header of the packet that triggered the control message (see
  431.          5.2.5).  Note that there is no padding between the Source Route
  432.          and the Payload, and that the Payload may start at any
  433.          arbitrary octet boundary.
  434.  
  435.  
  436. 4  Originating SDRP Data packets
  437.  
  438.  
  439.    This document assumes that a router that originates SDRP packets is
  440.    preconfigured with a set of SDRP routes.  Procedures for constructing
  441.    these routes are outside the scope of this document.  SDRP packet
  442.    forwarding may be deployed initially without additional routing
  443.    protocol support.
  444.  
  445.  
  446.  
  447. Expiration Date Sept. 31 1993                                   [Page 8]
  448.  
  449. INTERNET DRAFT                                                March 1993
  450.  
  451.  
  452.    When a router receives an IP datagram, the router uses the
  453.    information in the datagram and the local criteria to determine
  454.    whether the datagram should be forwarded along a particular SDRP
  455.    route.  Associated with each set of criteria is a set of one or more
  456.    SDRP routes that should be used to route matching packets.  The exact
  457.    nature of the criteria is a local matter.  The only restrictions this
  458.    document places on the applicability of SDRP routes is that an IP
  459.    datagram that contains a strict source route should not be forwarded
  460.    along an SDRP route, that SDRP encapsulation should never be applied
  461.    to an SDRP packet, and that if SDRP is used with inter-domain routes,
  462.    the destination domain must be also run SDRP.
  463.  
  464.    When a router decides to forward a datagram along a particular SDRP
  465.    route, the router constructs the SDRP packet by placing the original
  466.    datagram into the Payload field of the SDRP packet and constructing
  467.    the SDRP header based on the selected SDRP route.  The Next Hop
  468.    pointer is set to 0 (the first entry in the Source Route field of the
  469.    SDRP packet).  The value of the Time To Live field in the payload
  470.    header should be copied into the Hop Count field of the SDRP header.
  471.  
  472.    The originating router may reasonably assume that the interior
  473.    routing at the destination has converged, and that if the packet is
  474.    delivered to the destination domain, it will, most likely arrive at
  475.    the destination, if it is at all reachable.  However, the situation
  476.    with inter-domain routing is slightly different.  It is entirely
  477.    possible, either due to the state of inter-domain routing or due to
  478.    other SDRP routers, that a domain level source route which does not
  479.    terminate with the intended destination domain may lead a packet into
  480.    a routing loop.  Originating SDRP routers that wish to insure that
  481.    this does not occur should include a final domain level hop of the
  482.    destination domain.  The means for determining the DI of the
  483.    destination domain is outside of the scope of this document.
  484.  
  485.    Similarly, when using SDRP for interior routing, it is possible that
  486.    the source route does not coincide with IGP routing.  In this case,
  487.    one means of preventing a loop is to specify the last hop router's IP
  488.    address as the last address within the source route.
  489.  
  490.    The source address field in the delivery header should contain an IP
  491.    address of the router. The value of the Don't Fragment flag of the
  492.    delivery header is copied from the Don't Fragment flag of the payload
  493.    header.  The value of the Type Of Service field in the delivery
  494.    header is copied from the Type Of Service field in the payload
  495.    header.  If the payload header contains an IP security option, that
  496.    option is replicated as an option in the delivery header.  All other
  497.    IP options in the payload header must be ignored.
  498.  
  499.    If IDRP is used, then the TOS corresponding to this route is copied
  500.  
  501.  
  502.  
  503. Expiration Date Sept. 31 1993                                   [Page 9]
  504.  
  505. INTERNET DRAFT                                                March 1993
  506.  
  507.  
  508.    into the TOS field in the delivery header.
  509.  
  510.    The resulting SDRP packet is then forwarded as described in Section
  511.    5.2.2.
  512.  
  513.    If a router decides to forward a datagram along a particular SDRP
  514.    route, and the payload header has Don't Fragment flag set to 1, and
  515.    the length of the datagram is greater than the MTU associated with
  516.    the SDRP route (if the MTU is defined), the router should generate an
  517.    ICMP Destination Unreachable message with a code meaning
  518.    "fragmentation needed and DF set" in accordance with ([6]).  The
  519.    router should discard the original datagram.
  520.  
  521.    If a router has learned an MTU for a particular SDRP route, either
  522.    via ICMP messages or via configuration information, and it determines
  523.    that an SDRP packet must be fragmented before transmission, then it
  524.    must first fragment the payload packet using normal IP fragmentation.
  525.    SDRP packets are then constructed for each fragment, as describe
  526.    above.
  527.  
  528.    A router may use locally originated  SDRP packets to verify the
  529.    feasibility of its SDRP routes. To do this the router sets the value
  530.    of the Probe Indicator field in the SDRP packet to 1.  Receipt of an
  531.    SDRP control packet by the originating router with the "Probe
  532.    Completed" Notification Code (see Section 7.1) indicates feasibility
  533.    of the SDRP route.  Persistent lack of SDRP control packets with the
  534.    "Probe Completed" Notification Code should be used as an indication
  535.    that the associated SDRP route is not feasible.
  536.  
  537.  
  538. 5  Processing SDRP packets
  539.  
  540.  
  541.    We say that a router receives an SDRP packet if the destination
  542.    address field in the delivery header of the packet arriving at the
  543.    router contains one of the IP addresses of the router.
  544.  
  545.    When a router receives an SDRP packet, the router extracts the Source
  546.    Route Protocol field from the SDRP header.
  547.  
  548.  
  549. 5.1 Supporting Transit Policies
  550.  
  551.  
  552.    A router may be able to verify that a packet that it is given to
  553.    forward does not violate any of the transit policies that may exist,
  554.    of the domain to which the router belongs.  Specific verification
  555.    mechanisms are a matter that is local to the router and are outside
  556.  
  557.  
  558.  
  559. Expiration Date Sept. 31 1993                                  [Page 10]
  560.  
  561. INTERNET DRAFT                                                March 1993
  562.  
  563.  
  564.    the scope of this document.
  565.  
  566.    The only restriction on the verification mechanisms is that they may
  567.    take into account only the contents of the SDRP header, the payload
  568.    header, and transport protocol header of the payload packet.
  569.  
  570.    With SDRP a domain may enforce its transit policies by applying
  571.    filters based on the information present in the IP Header. For
  572.    example a router may initially carefully filter all SDRP traffic from
  573.    all possible sources. A filter that allows certain SDRP traffic from
  574.    selected sources to pass through the router could then be installed
  575.    dynamically to pass similar types of traffic.  Thus, by caching
  576.    appropriate filtering information, a transit domain can efficiently
  577.    support transit policies.  Other mechanisms for supporting transit
  578.    policy and implementation techniques are not precluded by this
  579.    document.
  580.  
  581.    If the router detects that the SDRP packet violates a domain's
  582.    transit policy it sends back an SDRP control packet and discards the
  583.    violating packet.
  584.  
  585.    SDRP control packets are not subject to transit policies.
  586.  
  587.    If a router does not discard an SDRP packet due to a transit policy
  588.    violation, then the router attempts to forward it as specified in
  589.    Section 5.2.
  590.  
  591.  
  592. 5.2 Forwarding SDRP packets
  593.  
  594.  
  595.    Procedures for forwarding of an SDRP packet depend on
  596.  
  597.    a) whether the router has the routing information needed to forward
  598.    the packet; b) whether the SDRP route has been completely traversed;
  599.    c) whether the SDRP route is strict or loose, and d) whether the
  600.    packet is a data or control packet.
  601.  
  602.    When forwarding an SDRP packet (either data or control) a router
  603.    should not modify the following fields in the delivery header:
  604.  
  605.    a) Source Address b) Don't Fragment flag
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615. Expiration Date Sept. 31 1993                                  [Page 11]
  616.  
  617. INTERNET DRAFT                                                March 1993
  618.  
  619.  
  620. 5.2.1 Forwarding algorithm pseudo-code
  621.  
  622.    The following pseudo-code gives an overview of the SDRP forwarding
  623.    algorithm.  Please consult the text below for more details.
  624.  
  625.    Let LOCAL_DI be the DI of the domain of the local system, let
  626.    NEXT_HOP be the next hop in the source route if the source route has
  627.    not been completely traversed, let NEXT_DI be the DI portion of
  628.    NEXT_HOP if NEXT_HOP is from network 128.0.0.0, and let NEXT_ROUTER
  629.    be the IP address of the next router if the packet is to be forwarded
  630.    using SDRP.  We say that NEXT_DI is adjacent if the local domain is
  631.    adjacent to the domain that has NEXT_DI as its DI, and we say that
  632.    NEXT_ROUTER is adjacent if it represents an IP address of a router
  633.    that shares a link with the current router.  Normal IP forwarding
  634.    refers to forwarding that can be accomplished using FIBs constructed
  635.    via BGP, IDRP or one or more IGPs.
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671. Expiration Date Sept. 31 1993                                  [Page 12]
  672.  
  673. INTERNET DRAFT                                                March 1993
  674.  
  675.  
  676.  
  677.              if the packet is a control packet begin
  678.                if the Target Router equals an address assigned to the
  679.                  local router begin
  680.                  remove the delivery header
  681.                  process information carried in the control packet
  682.                  return
  683.                end if
  684.                if the packet can be forwarded using normal IP forwarding begin
  685.                  set Next Hop Pointer to Source Route Length
  686.                  forward the packet using normal IP forwarding
  687.                  return
  688.                end if
  689.              end if
  690.  
  691.              if the version field is not 1 begin
  692.                if the packet is a data packet begin
  693.                  generate a control packet with "Unimplemented SDRP version"
  694.                end if
  695.                discard the packet
  696.                return
  697.              end if
  698.  
  699.              if the source route protocol type is not 1 begin
  700.                if the packet is a data packet begin
  701.                  generate a control packet with "Unimplemented source route
  702.                    protocol type"
  703.                end if
  704.                discard the packet
  705.                return
  706.              end if
  707.  
  708.  
  709.  
  710.              decrement the Hop Count field
  711.              if the Hop Count field is 0 begin
  712.                if the packet is a data packet begin
  713.                  generate a control packet with "Hop Count Exceeded"
  714.                end if
  715.                discard the packet
  716.                return
  717.              end if
  718.  
  719.              if the packet is a data packet begin
  720.                if the packet violates transit policy begin
  721.                  generate a control packet with "Transit Policy Violation"
  722.                  discard the data packet
  723.                  return
  724.  
  725.  
  726.  
  727. Expiration Date Sept. 31 1993                                  [Page 13]
  728.  
  729. INTERNET DRAFT                                                March 1993
  730.  
  731.  
  732.                end if
  733.              end if
  734.  
  735.              set mode to NONE
  736.              set advanced to FALSE
  737.              if Next Hop Ptr does not equal Source Route Length begin
  738.                set NEXT_HOP to the next hop in the source route
  739.                while mode equals NONE begin
  740.                  if NEXT_HOP is from network 127.0.0.0 begin
  741.                    set the Loose/Strict Source Route bit equal to
  742.                        the Loose/Strict Source Route Change bit
  743.                  else if NEXT_HOP is from network 128.0.0.0 begin
  744.                    set NEXT_DI to the least significant two octets of NEXT_HOP
  745.                    if NEXT_DI is not equal to LOCAL_DI begin
  746.                      set mode to DOMAIN
  747.                    end if
  748.                  else if NEXT_HOP does not equals an address assigned to the
  749.                    local router begin
  750.                    set mode to LOCAL
  751.                  end if
  752.                  if mode equals NONE begin
  753.                    set advanced to TRUE
  754.                    increment the Next Hop Pointer field
  755.                    if Next Hop Pointer equals Source Route Length begin
  756.                      set mode to COMPLETE
  757.                    else
  758.                      set NEXT_HOP to the next hop in the source route
  759.                    end if
  760.                  end if
  761.                end while
  762.              end if
  763.  
  764.              if mode equals DOMAIN begin
  765.                if the source route is strict and NEXT_DI is not adjacent begin
  766.                  if the packet is a data packet begin
  767.                    generate a control packet with "Strict Source Route Failed"
  768.                  end if
  769.                  discard the packet
  770.                  return
  771.                end if
  772.                set route to NONE
  773.                if the source route is loose begin
  774.                  if not advanced begin
  775.                    find the route, if any, based on Prefix and Prefix Length
  776.                    if the route is an aggregate formed at the local router begin
  777.                      set route to NONE
  778.                    end if
  779.                  end if
  780.  
  781.  
  782.  
  783. Expiration Date Sept. 31 1993                                  [Page 14]
  784.  
  785. INTERNET DRAFT                                                March 1993
  786.  
  787.  
  788.                  if route equals NONE begin
  789.                    select a BGP or IDRP route, if any, with a path that includes
  790.                      NEXT_DI and is not an aggregate formed at the local router
  791.                    if route equals NONE begin
  792.                      if the packet is a data packet begin
  793.                        generate a control packet with "No Route Available"
  794.                      end if
  795.                      discard the packet
  796.                      return
  797.                    end if
  798.                    copy the NLRI from the route to the Prefix and Prefix Length
  799.                  end if
  800.                  if the route is an IDRP route begin
  801.                    set appropriate TOS in delivery header
  802.                  end if
  803.                  set NEXT_ROUTER from the route
  804.                else
  805.                  set NEXT_ROUTER from the routing information for NEXT_DI
  806.                    using the D-FIB
  807.                end if
  808.              end if
  809.  
  810.              if mode equals LOCAL begin
  811.                set NEXT_ROUTER equal to NEXT_HOP
  812.                if the source route is strict and NEXT_ROUTER is not
  813.                  adjacent begin
  814.                  if the packet is a data packet begin
  815.                    generate a control packet with "Strict Source Route Failed"
  816.                  end if
  817.                  discard the packet
  818.                  return
  819.                end if
  820.              end if
  821.  
  822.              if mode equals LOCAL or mode equals DOMAIN begin
  823.                set the destination address of the delivery header equal
  824.                  to NEXT_ROUTER
  825.                checksum the delivery header
  826.                route packet to NEXT_ROUTER using normal IP forwarding
  827.                return
  828.              end if
  829.  
  830.              if the packet is a control packet begin
  831.                discard the packet
  832.              end if
  833.              remove the delivery header and the SDRP Header
  834.              if there is no normal IP route to the payload destination begin
  835.                generate a control packet with "No Route Available"
  836.  
  837.  
  838.  
  839. Expiration Date Sept. 31 1993                                  [Page 15]
  840.  
  841. INTERNET DRAFT                                                March 1993
  842.  
  843.  
  844.                discard the data packet
  845.                return
  846.              end if
  847.              forward the payload using normal IP forwarding
  848.              if the probe bit is set begin
  849.                generate a control packet with "Probe Completed"
  850.              end if
  851.  
  852.  
  853.  
  854. 5.2.2 Handling an SDRP control packet.
  855.  
  856.  
  857.    An SDRP control packet is indicated by 0 in the Data packet/Control
  858.    packet bit in the Flags field in the SDRP Header.
  859.  
  860.    If the Target Router field of the received SDRP packet contains an IP
  861.    address that is assigned to the local system, then the local system
  862.    should use the information carried in the Notification Code field,
  863.    the Source Route Identifier field and the information carried in the
  864.    Payload field to update the status of its SDRP routes. Details of
  865.    such procedures are described in Section 7.
  866.  
  867.    Otherwise, the local system checks whether it can forward the packet
  868.    to the router specified in the Target Router field by using the
  869.    routing information present in its local FIB. If forwarding is
  870.    possible then the local system sets the destination address of the
  871.    delivery header to the address specified in the Target Router field,
  872.    and hands the packet off for normal IP forwarding.  If normal IP
  873.    forwarding is impossible then the packet may be forwarded in the same
  874.    manner as an SDRP data packet (described below) but with the
  875.    following exceptions.
  876.  
  877.    Control packets are not subject to transit policies.  In no case
  878.    should a control packet be generated in response to an error caused
  879.    by a control packet. If the source route is completely traversed and
  880.    the packet still cannot be forwarded via normal IP routing, the
  881.    packet should be dropped.
  882.  
  883.  
  884. 5.2.3 Handling an SDRP data packet.
  885.  
  886.  
  887.    An SDRP data packet is indicated by a one in the Data packet/Control
  888.    packet bit in the Flags field in the SDRP Header.
  889.  
  890.    An SDRP data packet is forwarded by sending the packet along the
  891.    source route in the SDRP Header.  When the source route is completely
  892.  
  893.  
  894.  
  895. Expiration Date Sept. 31 1993                                  [Page 16]
  896.  
  897. INTERNET DRAFT                                                March 1993
  898.  
  899.  
  900.    traversed and the packet has reached the destination domain, the
  901.    payload may be removed from the data packet and forwarded normally.
  902.    Further details are described below.
  903.  
  904.  
  905. 5.2.4 Checking the SDRP version number
  906.  
  907.  
  908.    An SDRP packet that has a version number other than 1 should be
  909.    discarded.  If the SDRP packet was a data packet, then a control
  910.    packet with the Notification Code "Unimplemented SDRP version" should
  911.    be generated as specified in section 6.
  912.  
  913.  
  914. 5.2.5 Checking the Source Route Protocol Type
  915.  
  916.  
  917.    This document describes Source Route Protocol Type 1.  An SDRP router
  918.    may support multiple Source Route Protocol Types; however an SDRP
  919.    router is NOT required to support all defined Source Route Types.
  920.    Any packet that has a Source Route Protocol Type which is not
  921.    supported should be discarded.  If the SDRP packet was a data packet,
  922.    then a control packet with the Notification Code "Unimplemented
  923.    Source Route Protocol Type" should be generated as specified in
  924.    section 6.
  925.  
  926.  
  927. 5.2.6 Decrementing and checking Hop Count
  928.  
  929.  
  930.    If an SDRP packet is to be forwarded, the Hop Count field should be
  931.    decremented.  If the resulting value is zero and the packet was a
  932.    data packet, then a control packet with the Notification Code "Hop
  933.    Count Exceeded" should be generated as specified in section 6, and
  934.    the packet should be discarded.  If the resulting value is zero and
  935.    the packet was a control packet, the packet should be discarded.  The
  936.    payload of the control packet should carry the payload header
  937.    followed by 64 bits of the payload data of the data packet.
  938.  
  939.  
  940. 5.2.7 Upholding transit policies
  941.  
  942.  
  943.    It is not a goal of SDRP to create a security routing system.
  944.    Therefore, we need to qualify our use of the term "upholding transit
  945.    policy".  It is assumed that transit policies have the nature of a
  946.    "gentleperson's agreement", and are upheld by all the participants.
  947.    In other words, it is assumed that there will be no malicious
  948.  
  949.  
  950.  
  951. Expiration Date Sept. 31 1993                                  [Page 17]
  952.  
  953. INTERNET DRAFT                                                March 1993
  954.  
  955.  
  956.    attempts to violate transit policies and that parties will rely on
  957.    auditing and post facto detection of violations. When a security
  958.    architecture is developed for IP or other network protocols then it
  959.    may be applied to increase the assurance of transit policy
  960.    enforcement. These issues are beyond the scope of this document.
  961.  
  962.    A router may examine any data packet to verify if it complies with
  963.    local transit policies, as described in section 5.1.  If the
  964.    verification fails, the router generates a control packet.  If the
  965.    verification referred to only the contents of the SDRP header, then
  966.    the payload field of the control packet should be empty. If the
  967.    verification referred to both the contents of the SDRP header and the
  968.    payload header, then the payload field of the control packet should
  969.    carry the payload header.  If the verification referred to the
  970.    transport protocol header, then the payload field of the control
  971.    packet should carry the payload header and the transport header.
  972.  
  973.    The Notification Code field of the SDRP header in the control packet
  974.    is set to Transit Policy Violation.  The procedures for constructing
  975.    the rest of the SDRP Header of the control packet are specified in
  976.    Section 6.
  977.  
  978.  
  979. 5.2.8 Partially traversed source routes
  980.  
  981.  
  982.    If a router receives an SDRP packet with a partially traversed source
  983.    route, it extracts the next hop of the source route from the Source
  984.    Route field. The router locates the high-order byte of the
  985.    appropriate hop by using the Next Hop Pointer field as a 32 bit word
  986.    offset relative to the start of the Source Route field.  The next hop
  987.    is always four octets long.  The following procedure is used to
  988.    interpret the next hop.
  989.  
  990.    Syntactically, each element in the source route appears as an IP
  991.    address.  There are three encodings for the next hop:
  992.  
  993.    a) The next hop is an address in network 127.0.0.0.  In this case,
  994.    the Loose/Strict Source Route field is set equal to the Loose/Strict
  995.    Source Route Change bit.  Then the Next Hop Pointer is incremented,
  996.    the next hop is read from the Source Route field, and these three
  997.    cases are examined again.
  998.  
  999.    b) The next hop is an address in network 128.0.0.0.  In this case,
  1000.    the DI of the next domain is extracted from the least significant two
  1001.    octets of the next hop.  If the extracted DI is the same as the DI of
  1002.    the local domain, then the Next Hop Pointer is incremented, the next
  1003.    hop is read from the Source Route field, and these three cases are
  1004.  
  1005.  
  1006.  
  1007. Expiration Date Sept. 31 1993                                  [Page 18]
  1008.  
  1009. INTERNET DRAFT                                                March 1993
  1010.  
  1011.  
  1012.    examined again.  Otherwise, if the extracted DI is different from the
  1013.    DI of the local domain, the next hop is the extracted DI, and the
  1014.    forwarding process may proceed.
  1015.  
  1016.    c) The next hop is any other IP address.  If the next hop is equal to
  1017.    any IP address assigned to the local router, the Next Hop Pointer is
  1018.    incremented, the next hop is read from the Source Route field, and
  1019.    these three cases examined again.  Otherwise, the next hop is the IP
  1020.    address of the next router in the source route and the forwarding
  1021.    process may proceed.
  1022.  
  1023.    The above procedure for interpreting the next hop in the source route
  1024.    finishes when the next hop is either a router other than the local
  1025.    router or an encoded DI that is not the local DI or a completed
  1026.    source route.
  1027.  
  1028.    If upon termination of this procedure the source route is completely
  1029.    traversed, see section 5.2.9.
  1030.  
  1031.  
  1032. 5.2.8.1 Finding a route to the next hop
  1033.  
  1034.  
  1035.  
  1036.    If the next hop is a router, then the destination address in the
  1037.    delivery header is replaced by the next hop address and the resulting
  1038.    packet can then be forwarded using normal IP forwarding.  Otherwise,
  1039.    a DI was extracted from the next hop in the source route, and the
  1040.    following procedure is used to find a route to the next domain.
  1041.  
  1042.    Given the DI of the next domain, the router next consults its D-FIB.
  1043.    If no entry exists in the D-FIB for the next domain, then the packet
  1044.    should be discarded.  If the packet was a data packet, a control
  1045.    message with Notification Code "No Route Available" should be
  1046.    generated as specified in Section 6. No other actions are necessary.
  1047.  
  1048.    If there is a D-FIB entry, the router next examines the packet to
  1049.    determine if the packet specified a strict source route.  If so, and
  1050.    the next domain is not adjacent to the local domain, then a control
  1051.    packet with the Notification Code "Strict Source Route Failed" should
  1052.    be generated, as specified in section 6, and the original packet
  1053.    should be discarded.  No other actions are necessary.
  1054.  
  1055.    If source route is loose, then BGP or IDRP information must be used
  1056.    to insure that there is no loop in reaching the next hop.  If the
  1057.    Next Hop Pointer was incremented when determining the next hop, then
  1058.    the router must select a BGP or IDRP route with a path that includes
  1059.    the extracted DI, and the NLRI for this route is copied into the
  1060.  
  1061.  
  1062.  
  1063. Expiration Date Sept. 31 1993                                  [Page 19]
  1064.  
  1065. INTERNET DRAFT                                                March 1993
  1066.  
  1067.  
  1068.    Prefix Length and Prefix fields.
  1069.  
  1070.    Otherwise, the Next Hop Pointer was not incremented, and the router
  1071.    should use the information carried in the Prefix and Prefix Length as
  1072.    an index into its BGP or IDRP routing table.  If it finds a matching
  1073.    route then it must select the corresponding D-FIB entry.  If the
  1074.    route was formed locally by aggregation, then the router must consult
  1075.    its D-FIB and select any route with a path that includes the
  1076.    extracted DI.  The NLRI for this route should be copied into the
  1077.    Prefix Length and Prefix fields.
  1078.  
  1079.    In either case, the D-FIB entry includes the IP address of the next
  1080.    SDRP-speaking router to which the SDRP packet should be routed.  The
  1081.    destination address in the delivery header is replaced by this
  1082.    address.  The resulting packet can then be forwarded using normal IP
  1083.    forwarding.
  1084.  
  1085.  
  1086. 5.2.8.2 Last Hop Optimization
  1087.  
  1088.  
  1089.    A small optimization can be performed if there is only a single DI or
  1090.    IP address in the source route that has not been traversed.  In this
  1091.    case, if there is a route in the FIB for the destination address of
  1092.    the payload packet, and the next DI in the source route indicates an
  1093.    adjacent domain, and the FIB route passes through the local and
  1094.    adjacent domains, then the source route may be considered completely
  1095.    traversed and processing may proceed as in section 5.2.9.
  1096.  
  1097.  
  1098. 5.2.9 Completely Traversed source routes
  1099.  
  1100.  
  1101.    If the SDRP packet received by a router with a completely-traversed
  1102.    source route is a control packet and if the Target Router field
  1103.    carries an IP address assigned to the router, then the packet should
  1104.    be processed as specified in Section 7.  Otherwise, if the SDRP
  1105.    packet is a control packet, and the packet cannot be forwarded via
  1106.    either SDRP or normal IP forwarding, the packet should be dropped.
  1107.  
  1108.    The Hop Count field should be copied from the SDRP header into the IP
  1109.    TTL field in the payload header.  The resulting payload packet is
  1110.    then forwarded using normal IP forwarding.  If there is no FIB entry
  1111.    for the destination, then the packet should be discarded and a
  1112.    control message with Notification Code "No Route Available" should be
  1113.    generated as specified in Section 6.  If the packet can be forwarded
  1114.    and if the Probe Indication bit is set to one in the SDRP header,
  1115.    then a control message with Notification Code "Probe Completed"
  1116.  
  1117.  
  1118.  
  1119. Expiration Date Sept. 31 1993                                  [Page 20]
  1120.  
  1121. INTERNET DRAFT                                                March 1993
  1122.  
  1123.  
  1124.    should be generated as specified in section 6. The payload of the
  1125.    control packet should carry the first 64 bits of the SDRP header and
  1126.    the payload header.
  1127.  
  1128.  
  1129. 6  Originating SDRP control packets
  1130.  
  1131.  
  1132.    A router sends a control packet in response to either error
  1133.    conditions, or to successful completion of a probe request (indicated
  1134.    via Probe Indication in the Flags field).
  1135.  
  1136.    The Data Packet/Control Packet field is set to indicate Control
  1137.    Packet.  The following fields are copied from the SDRP header of the
  1138.    Data packet that caused the generation of the Control packet:
  1139.  
  1140.    Loose/Strict Source Route Source Route Protocol Type Source Route
  1141.    Identifier Source Route Length field Payload Protocol Type
  1142.  
  1143.    A Control packet should not carry a Probe Indication field.
  1144.  
  1145.    A router should never originate a Control packet as the result of an
  1146.    error caused by a control packet.
  1147.  
  1148.    The Target Router is copied from the source IP address of the
  1149.    delivery header of the SDRP Data packet.
  1150.  
  1151.    The router generating a control packet checks its FIB for a route to
  1152.    the destination depicted by the Target Router field.  If such a route
  1153.    is present, then the value of the Destination Address field in the
  1154.    delivery header is set to the Target Router, the Source Address field
  1155.    in the delivery header is set to the IP address of one of the
  1156.    interfaces attached to the local system, and the packet is forwarded
  1157.    via normal IP forwarding.
  1158.  
  1159.    If the FIB does not have a route to the destination depicted by the
  1160.    Target Router field, the local system constructs the Source Route
  1161.    field of the Control packet by reversing the SDRP route carried in
  1162.    the Source Route field of the Data packet, sets the value of the Next
  1163.    Hop Pointer to the value of the Source Route Length field minus the
  1164.    value of the Next Hop Pointer field of the SDRP data packet that
  1165.    caused generation of the Control Packet.  All Loose/Strict Source
  1166.    Route change bits in the new source route should be set to 0 (loose
  1167.    source route).
  1168.  
  1169.    The contents of the Payload field depends on the reason for
  1170.    generating a control packet.
  1171.  
  1172.  
  1173.  
  1174.  
  1175. Expiration Date Sept. 31 1993                                  [Page 21]
  1176.  
  1177. INTERNET DRAFT                                                March 1993
  1178.  
  1179.  
  1180.    The resulting packet is then handled via SDRP Forwarding procedures
  1181.    described in Section 5.2.
  1182.  
  1183.  
  1184. 7  Processing control information
  1185.  
  1186.  
  1187.    A router participating in SDRP may receive control information in two
  1188.    forms, SDRP control packets from other routers and ICMP messages from
  1189.    routers that do not participate in SDRP, but are involved in
  1190.    forwarding SDRP packets.
  1191.  
  1192.  
  1193. 7.1 Processing SDRP control packets
  1194.  
  1195.  
  1196.    If after processing an SDRP control packet a router determines that
  1197.    the packet carries information about SDRP routes used by the rotuer,
  1198.    the router may use the information in the SDRP control packet to
  1199.    select alternate routes if available and to mark the affected routes
  1200.    as not feasible.
  1201.  
  1202.    To correlate information carried in the SDRP control packet with the
  1203.    SDRP routes used by the router, the router uses information carried
  1204.    in the SDRP header of the control packet and optionally in the SDRP
  1205.    payload of the control packet (if present).
  1206.  
  1207.    In general receipt of any SDRP control packet that carries one of the
  1208.    following Notification Codes
  1209.  
  1210.    No Route Available Strict Source Route Failed Unimplemented SDRP
  1211.    version indicates that the corresponding SDRP route is presently not
  1212.    feasible and thus should not be used for packet forwarding.  The
  1213.    router may at some later point attempt to use an SDRP route that was
  1214.    marked as infeasible. The criteria used for retrying routes is
  1215.    outside the scope of this document and a subject for further study.
  1216.    It need to be standardized and can be a matter of local control.
  1217.  
  1218.    Receipt of an SDRP control packet that carries the "Transit Policy
  1219.    Violation" Notification Code shall be interpreted as follows:
  1220.  
  1221.    If the control packet carries no payload data then the corresponding
  1222.    SDRP route violates transit policy regardless of the content of the
  1223.    payload packet carried along that route.  If the control packet
  1224.    carries only the payload header, then the corresponding SDRP route
  1225.    violates transit policy due to the content of the payload header.  If
  1226.    the control packet carries the payload header and the transport
  1227.    header, then the corresponding SDRP route violates transit policy for
  1228.  
  1229.  
  1230.  
  1231. Expiration Date Sept. 31 1993                                  [Page 22]
  1232.  
  1233. INTERNET DRAFT                                                March 1993
  1234.  
  1235.  
  1236.    the particular combination of payload and transport header contents.
  1237.  
  1238.    Receipt of an SDRP control packet that carries "Probe Completed"
  1239.    Notification Code indicates that the corresponding SDRP route is
  1240.    feasible.
  1241.  
  1242.    If a router receives an SDRP control packet that carries "Hop Count
  1243.    Exceeded" Notification Code, the router should use the information in
  1244.    the payload of the Control packet to construct an ICMP Time Exceeded
  1245.    Message with code "time to live exceeded in transit" and send the
  1246.    message to the host indicated by the source address in the Payload
  1247.    Header.
  1248.  
  1249.  
  1250. 7.2 Processing ICMP messages
  1251.  
  1252.  
  1253.    To correlate information carried in the ICMP messages with the SDRP
  1254.    routes used by the router, the router uses the portion of the SDRP
  1255.    datagram returned by ICMP.  This must contain the Source Route
  1256.    Identifier of the SDRP route used by the router.
  1257.  
  1258.    ICMP Destination Unreachable messages with a code meaning
  1259.    "fragmentation needed and DF set" should be used for SDRP MTU
  1260.    discovery as described in Section 9.
  1261.  
  1262.    All other ICMP Unreachable messages indicate that the associated
  1263.    route is not feasible.
  1264.  
  1265.  
  1266. 8  Constructing D-FIBs.
  1267.  
  1268.  
  1269.    A BR constructs its D-FIB as a result of participating in either BGP
  1270.    or IDRP. A BR must advertise a route to destinations within its
  1271.    domain to all of its external peers (BRs in adjacent domains), via
  1272.    BGP or IDRP. A BR may also advertise (via BGP or IDRP) to its
  1273.    external peers routes to destinations within other domains that are
  1274.    installed in the BR's D-FIB.
  1275.  
  1276.    If a BR receives a route to an adjacent domain from a BR in that
  1277.    domain and selects that route as part of its BGP or IDRP Decision
  1278.    Process, then it must propagate this route (via BGP or IDRP) to all
  1279.    other BRs within its domain.  A BR may also propagate such a route if
  1280.    it depicts an autonomous system other than the adjacent domain.
  1281.  
  1282.    Since AS numbers are encoded as network numbers in network 128.0.0.0,
  1283.    it is possible to also advertise a route to a domain in BGP or IDRP.
  1284.  
  1285.  
  1286.  
  1287. Expiration Date Sept. 31 1993                                  [Page 23]
  1288.  
  1289. INTERNET DRAFT                                                March 1993
  1290.  
  1291.  
  1292. 9  SDRP MTU Discovery
  1293.  
  1294.  
  1295.    To participate in Path MTU Discovery ([6]) a router may maintain
  1296.    information about the maximum length of the payload packet that can
  1297.    be carried without fragmentation along a particular SDRP route.
  1298.  
  1299.    SDRP provides two complimentary techniques to support MTU Discovery.
  1300.  
  1301.    The first one is passive and is based on the receipt of the ICMP
  1302.    Destination Unreachable messages (as described in Section 7.2).  By
  1303.    combining information provided in the ICMP message with local
  1304.    information about the SDRP route the local system can determine the
  1305.    length of a payload packet that would require fragmentation.
  1306.  
  1307.    The second one is active and employs the Probe Indicator bit.  If an
  1308.    SDRP data packet that carries the Probe Indicator bit in the SDRP
  1309.    header and Don't Fragment flag in the delivery header triggers the
  1310.    last router on the SDRP route to return an SDRP Control packet (with
  1311.    the Notification Code "Probe Completed"), then the information
  1312.    carried in the payload header of the control packet can be used to
  1313.    determine the length of the payload packet that went through the SDRP
  1314.    route without fragmentation.
  1315.  
  1316.  
  1317. References
  1318.  
  1319.  
  1320.    [1] Lougheed, K., and Y. Rekhter, "A Border Gateway Protocol 3
  1321.        (BGP-3), RFC 1267, cisco Systems, T.J. Watson Research Center,
  1322.        IBM Corp., October 1991.
  1323.  
  1324.    [2] Rekhter, Y., and P. Gross, "Application of the Border Gateway
  1325.        Protocol in the Internet", RFC 1268, T.J. Watson Research Center,
  1326.        IBM Corp., ANS, October 1991.
  1327.  
  1328.    [3] Y. Rekhter and T. Li, "A Border Gateway Protocol 4 (BGP-4)",
  1329.        Internet Draft, cisco Systems, T.J. Watson Research Center, IBM
  1330.        Corp., September 1992.
  1331.  
  1332.    [4] S. Hares, "IDRP for IP", Internet Draft, NSFNET/MERIT, June 1992
  1333.  
  1334.    [5] Postel, J., "Internet Protocol - DARPA Internet Program Protocol
  1335.        Specification", RFC 791, DARPA, September 1981.
  1336.  
  1337.    [6] J. Mogul, S., and S. Deering, "Path MTU Discovery", RFC1191,
  1338.        November 1990
  1339.  
  1340.  
  1341.  
  1342.  
  1343. Expiration Date Sept. 31 1993                                  [Page 24]
  1344.  
  1345. INTERNET DRAFT                                                March 1993
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399. Expiration Date Sept. 31 1993                                  [Page 25]
  1400.  
  1401.